package dao;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import modelo.Previsao;
import java.sql.ResultSet;
import util.DBUtil;

public class PrevisaoDAO {
	
	private Connection con;
	private int res; 		
	private static PrevisaoDAO instancia;

	private PrevisaoDAO(){
		con = DBUtil.getConnection();
	}
	
	public static PrevisaoDAO getInstancia(){
		if (instancia == null){
			instancia = new PrevisaoDAO();
		}
		
		return instancia;
	}

	public boolean inserir(Previsao novaPrevisao){
			try {
				Statement st = con.createStatement();
				String sql = "insert into previsao (tag, periodatual, " +
						"periodproposta) values " +
						"('"+novaPrevisao.getTagEquip()+"'," +
						"'"+novaPrevisao.getPeriodAtual()+"'," +
						"'"+novaPrevisao.getPeriodProposta()+"')";
				System.out.println(sql);
				res = st.executeUpdate(sql);
				
				if(res==0)
					return false;
				else
					return true;
								
			} catch (SQLException er) {
				// TODO Auto-generated catch block
				er.printStackTrace();
			}
			
			return false;
	}

	public Previsao buscar (Previsao previsao){

		try {
			// preparar o statement
			String sql = "select * from previsao where tag = ? ";
			PreparedStatement comandoSql = con.prepareStatement(sql);
			comandoSql.setString(1,previsao.getTagEquip());
	
			ResultSet resultado = comandoSql.executeQuery();

			if(resultado.next()){
				Previsao p = new Previsao();
				p.setTagEquip(resultado.getString("tag"));
				p.setPeriodAtual(resultado.getString("periodatual"));
				p.setPeriodProposta(resultado.getString("periodproposta"));
				return p;
			}
			
		}
		catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		return null;

	}

	public boolean excluir(Previsao previsao) {
		// TODO Auto-generated method stub
		String sql = "delete from previsao where tag = ?";
		
		try {
			PreparedStatement comandoSql = con.prepareStatement(sql);
			comandoSql.setString(1, previsao.getTagEquip());
			int cont = comandoSql.executeUpdate();
			
			if(cont==0){
				return false;
			}
			else{
				return true;
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return false;
	}

	public boolean alterar(Previsao previsao) {
		// TODO Auto-generated method stub
		String sql = "update previsao set tag = '" +
		previsao.getTagEquip() +
		" ',periodatual = '" + previsao.getPeriodAtual() +
		" ',periodproposta = '" + previsao.getPeriodProposta() +" '";
		
		try {
			PreparedStatement comandoSql = con.prepareStatement(sql);
			comandoSql.setString(1, previsao.getTagEquip());
			int cont = comandoSql.executeUpdate();
			
			if(cont==0){
				return false;
			}
			else{
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
}